Joey Hess [Tue, 20 Sep 2022 18:52:43 +0000 (14:52 -0400)]
skip checkRepoConfigInaccessible when git directory specified explicitly
Fix a reversion that prevented git-annex from working in a repository when
--git-dir or GIT_DIR is specified to relocate the git directory to
somewhere else. (Introduced in version 10.
20220525)
checkRepoConfigInaccessible could still run git config --list, just passing
--git-dir. It seems not necessary, because I know that passing --git-dir
bypasses git's check for repo ownership. I suppose it might be that git
eventually changes to check something about the ownership of the working
tree, so passing --git-dir without --work-tree would still be worth doing.
But for now this is the simple fix.
Sponsored-by: Nicholas Golder-Manning on Patreon
Joey Hess [Tue, 20 Sep 2022 18:16:15 +0000 (14:16 -0400)]
bug report rescued from forum
Joey Hess [Tue, 20 Sep 2022 18:06:09 +0000 (14:06 -0400)]
comment
Joey Hess [Tue, 20 Sep 2022 18:02:09 +0000 (14:02 -0400)]
comment
Joey Hess [Tue, 20 Sep 2022 17:54:34 +0000 (13:54 -0400)]
wontfix
Joey Hess [Tue, 20 Sep 2022 17:49:21 +0000 (13:49 -0400)]
comment
Joey Hess [Tue, 20 Sep 2022 17:35:47 +0000 (13:35 -0400)]
fixed
Joey Hess [Tue, 20 Sep 2022 17:33:57 +0000 (13:33 -0400)]
try retrieval from more than one export location when the first fails
Combined with commit
0ffc59d34107a3ee671b90fc7c59ca09c00abbf5, this
fixes the case where there are duplicate files on the special remote,
and the first gets modified/deleted, while the second is still present.
directory, adb: Fixed a bug when importtree=yes, and multiple files in the
special remote have the same content, that caused it to refuse to get a
file from the special remote, incorrectly complaining that it had changed,
due to only accepting the inode+mtime of one file (that was since modified
or deleted) and not accepting the inode+mtime of other duplicate files.
Sponsored-by: Max Thoursie on Patreon
Joey Hess [Tue, 20 Sep 2022 17:15:31 +0000 (13:15 -0400)]
change retrieveExportWithContentIdentifier to take a list of ContentIdentifier
This partly fixes an issue where there are duplicate files in the
special remote, and the first file gets swapped with another duplicate,
or deleted. The swap case is fixed by this, the deleted case will need
other changes.
This makes retrieveExportWithContentIdentifier take a list of allowed
ContentIdentifier, same as storeExportWithContentIdentifier,
removeExportWithContentIdentifier, and
checkPresentExportWithContentIdentifier.
Of the special remotes that support importtree, borg is a special case
and does not use content identifiers, S3 I assume can't get mixed up
like this, directory certainly has the problem, and adb also appears to
have had the problem.
Sponsored-by: Graham Spencer on Patreon
Joey Hess [Tue, 20 Sep 2022 16:56:16 +0000 (12:56 -0400)]
comment
Joey Hess [Tue, 20 Sep 2022 16:39:40 +0000 (12:39 -0400)]
comment
Joey Hess [Tue, 20 Sep 2022 16:20:33 +0000 (12:20 -0400)]
comment
nobodyinperson [Tue, 20 Sep 2022 12:11:03 +0000 (12:11 +0000)]
jgoerzen [Mon, 19 Sep 2022 14:49:02 +0000 (14:49 +0000)]
Added a comment
jgoerzen [Mon, 19 Sep 2022 13:55:07 +0000 (13:55 +0000)]
Added a comment
Gus [Mon, 19 Sep 2022 13:49:15 +0000 (13:49 +0000)]
Added a comment
Lukey [Mon, 19 Sep 2022 10:03:39 +0000 (10:03 +0000)]
Added a comment
Gus [Sun, 18 Sep 2022 12:21:07 +0000 (12:21 +0000)]
Gus [Sun, 18 Sep 2022 12:20:16 +0000 (12:20 +0000)]
eph@6377f195575d4a04abc70f20e0b00dffcc597d00 [Sat, 17 Sep 2022 21:19:13 +0000 (21:19 +0000)]
Added a comment
Joey Hess [Fri, 16 Sep 2022 18:11:25 +0000 (14:11 -0400)]
deal with ignoreinode config setting
Improve handling of directory special remotes with importtree=yes whose
ignoreinode setting has been changed. (By either enableremote or by
upgrading to commit
3e2f1f73cbc5fc10475745b3c3133267bd1850a7.)
When getting a file from such a remote, accept the content that would have
been accepted with the previous ignoreinode setting.
After a change to ignoreinode, importing a tree from the remote will
re-import and generate new content identifiers using the new config. So
when ignoreinode has changed to no, the inodes will be learned, and after
that point, a change in an inode will be detected as a change. Before
re-importing, a change in an inode will be ignored, as it was before the
ignoreinode change. This seems acceptble, because the user can re-import
immediately if they urgently need to add inodes. And if not, they'll
do it sometime, presumably, and the change will take effect then.
Sponsored-by: Erik Bjäreholt on Patreon
Joey Hess [Fri, 16 Sep 2022 17:40:27 +0000 (13:40 -0400)]
comments
Joey Hess [Fri, 16 Sep 2022 17:08:14 +0000 (13:08 -0400)]
comment
Joey Hess [Fri, 16 Sep 2022 16:52:00 +0000 (12:52 -0400)]
improve wording
Joey Hess [Fri, 16 Sep 2022 16:48:48 +0000 (12:48 -0400)]
comment
Joey Hess [Fri, 16 Sep 2022 16:39:43 +0000 (12:39 -0400)]
comment
eph@6377f195575d4a04abc70f20e0b00dffcc597d00 [Fri, 16 Sep 2022 09:30:44 +0000 (09:30 +0000)]
Added a comment
prancewit [Fri, 16 Sep 2022 08:39:09 +0000 (08:39 +0000)]
Added a comment
Joey Hess [Thu, 15 Sep 2022 19:18:45 +0000 (15:18 -0400)]
comment
Joey Hess [Thu, 15 Sep 2022 19:11:59 +0000 (15:11 -0400)]
vicfg: Include mincopies configuration
Sponsored-by: k0ld on Patreon
Joey Hess [Thu, 15 Sep 2022 18:05:47 +0000 (14:05 -0400)]
general purpose design for this todo
Sponsored-by: Boyd Stephen Smith Jr. on Patreon
Joey Hess [Thu, 15 Sep 2022 16:54:52 +0000 (12:54 -0400)]
belated response
Joey Hess [Thu, 15 Sep 2022 16:39:07 +0000 (12:39 -0400)]
comment
Joey Hess [Thu, 15 Sep 2022 16:27:41 +0000 (12:27 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Lukey [Thu, 15 Sep 2022 15:55:32 +0000 (15:55 +0000)]
Added a comment
Joey Hess [Thu, 15 Sep 2022 14:24:18 +0000 (10:24 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
eph@6377f195575d4a04abc70f20e0b00dffcc597d00 [Thu, 15 Sep 2022 11:55:56 +0000 (11:55 +0000)]
Lukey [Wed, 14 Sep 2022 15:09:20 +0000 (15:09 +0000)]
Added a comment
Joey Hess [Wed, 14 Sep 2022 01:36:16 +0000 (21:36 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
closing
Added a comment
prancewit [Tue, 13 Sep 2022 21:36:38 +0000 (21:36 +0000)]
Added a comment
prancewit [Tue, 13 Sep 2022 21:34:39 +0000 (21:34 +0000)]
removed
prancewit [Tue, 13 Sep 2022 21:32:45 +0000 (21:32 +0000)]
Added a comment
pat [Tue, 13 Sep 2022 21:15:33 +0000 (21:15 +0000)]
pat [Tue, 13 Sep 2022 21:14:03 +0000 (21:14 +0000)]
Added a comment
prancewit [Tue, 13 Sep 2022 19:45:23 +0000 (19:45 +0000)]
Added a comment: My current use case
Joey Hess [Tue, 13 Sep 2022 19:29:06 +0000 (15:29 -0400)]
mention that whereis --all skips dead keys
I looked at all man pages with --all, and this was the only one that
needs to add this disclaimer. Others like get and drop obviously
won't operate on dead keys anyway, because a dead key does not have any
content located anywhere.
Joey Hess [Tue, 13 Sep 2022 19:28:57 +0000 (15:28 -0400)]
improve wording
Joey Hess [Tue, 13 Sep 2022 19:13:06 +0000 (15:13 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 19:09:02 +0000 (15:09 -0400)]
update to work with modern git
Joey Hess [Tue, 13 Sep 2022 19:07:58 +0000 (15:07 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 18:58:45 +0000 (14:58 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 18:38:13 +0000 (14:38 -0400)]
fix reversion on skipping dead keys in --all/bare
Fix a reversion that made dead keys not be skipped when operating on all
keys via --all or in a bare repo. (Introduced in version 8.
20200720)
Also, improved the documentation of git-annex-dead, it does not only apply
to fsck --all.
Also, made git-annex fsck, when run on a file whose key is dead, display
that. Before, it displayed that only when run with --all, but with this
fix, it skips dead keys with --all. But it can still be run on a file that
uses a dead key, and displaying "This key is dead" explains to the user
why it does not consider missing content for it to be a problem.
Sponsored-by: k0ld on Patreon
Joey Hess [Tue, 13 Sep 2022 18:17:01 +0000 (14:17 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 18:13:31 +0000 (14:13 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 13 Sep 2022 18:13:19 +0000 (14:13 -0400)]
comment
yarikoptic [Tue, 13 Sep 2022 18:02:35 +0000 (18:02 +0000)]
Added a comment
Ilya_Shlyakhter [Tue, 13 Sep 2022 17:28:29 +0000 (17:28 +0000)]
Added a comment: re: many small files
Ilya_Shlyakhter [Tue, 13 Sep 2022 17:20:45 +0000 (17:20 +0000)]
Added a comment: many small files
Joey Hess [Tue, 13 Sep 2022 17:19:24 +0000 (13:19 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Tue, 13 Sep 2022 17:19:18 +0000 (13:19 -0400)]
comment
Ilya_Shlyakhter [Tue, 13 Sep 2022 17:16:52 +0000 (17:16 +0000)]
Added a comment: re: How to forget keys that get can't find
Joey Hess [Tue, 13 Sep 2022 17:08:41 +0000 (13:08 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 16:49:49 +0000 (12:49 -0400)]
comment
Joey Hess [Tue, 13 Sep 2022 16:46:05 +0000 (12:46 -0400)]
comments
prancewit [Tue, 13 Sep 2022 11:19:54 +0000 (11:19 +0000)]
Added a comment
Atemu [Tue, 13 Sep 2022 09:53:48 +0000 (09:53 +0000)]
Added a comment
prancewit [Mon, 12 Sep 2022 19:06:11 +0000 (19:06 +0000)]
pat [Sun, 11 Sep 2022 17:11:36 +0000 (17:11 +0000)]
Added a comment
Ilya_Shlyakhter [Sun, 11 Sep 2022 16:43:47 +0000 (16:43 +0000)]
Added a comment: re: How to forget keys that get can't find?
pat [Sat, 10 Sep 2022 21:39:59 +0000 (21:39 +0000)]
pat [Sat, 10 Sep 2022 21:19:42 +0000 (21:19 +0000)]
pat [Sat, 10 Sep 2022 21:07:30 +0000 (21:07 +0000)]
pat [Sat, 10 Sep 2022 21:04:30 +0000 (21:04 +0000)]
pat [Sat, 10 Sep 2022 21:00:18 +0000 (21:00 +0000)]
pat [Sat, 10 Sep 2022 20:59:30 +0000 (20:59 +0000)]
pat [Sat, 10 Sep 2022 20:15:52 +0000 (20:15 +0000)]
pat [Sat, 10 Sep 2022 20:14:51 +0000 (20:14 +0000)]
jgoerzen [Sat, 10 Sep 2022 00:38:17 +0000 (00:38 +0000)]
Added a comment
jgoerzen [Sat, 10 Sep 2022 00:37:45 +0000 (00:37 +0000)]
Added a comment
jgoerzen [Sat, 10 Sep 2022 00:37:09 +0000 (00:37 +0000)]
jgoerzen [Sat, 10 Sep 2022 00:32:57 +0000 (00:32 +0000)]
Added a comment
Added a comment
Added a comment
Joey Hess [Fri, 9 Sep 2022 20:08:13 +0000 (16:08 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 9 Sep 2022 20:06:47 +0000 (16:06 -0400)]
don't force use of conduit in withUrlOptionsPromptingCreds
Use curl for downloads from git remotes when annex.url-options and other
git configs are set.
If the url needs a password, curl will fail, and git credential will not be
used to prompt for it. But the user can set --netrc in url-options and
put the password in the netrc file.
This also means that url-options settings like -4 will take effect.
That was the case before commit
1883f7ef8f9f617c60832c7f0794b54515fc652d
forced conduit to be used.
HiDefender [Fri, 9 Sep 2022 19:24:56 +0000 (19:24 +0000)]
Added a comment: Using git-annex on NTFS with WSL2
Joey Hess [Fri, 9 Sep 2022 19:15:54 +0000 (15:15 -0400)]
comment
Joey Hess [Fri, 9 Sep 2022 18:53:26 +0000 (14:53 -0400)]
close
Joey Hess [Fri, 9 Sep 2022 18:46:55 +0000 (14:46 -0400)]
Merge branch 'master' of ssh://git-annex.branchable.com
Joey Hess [Fri, 9 Sep 2022 18:43:43 +0000 (14:43 -0400)]
avoid redundant prompt for http password in git-annex get that does autoinit
autoEnableSpecialRemotes runs a subprocess, and if the uuid for a git
remote has not been probed yet, that will do a http get that will prompt
for a password. And then the parent process will subsequently prompt
for a password when getting annexed files from the remote.
So the solution is for autoEnableSpecialRemotes to run remoteList before
the subprocess, which will probe for the uuid for the git remote in the
same process that will later be used to get annexed files.
But, Remote.Git imports Annex.Init, and Remote.List imports Remote.Git,
so Annex.Init cannot import Remote.List. Had to pass remoteList into
functions in Annex.Init to get around this dependency loop.
Joey Hess [Fri, 9 Sep 2022 17:53:38 +0000 (13:53 -0400)]
cache credentials in memory when doing http basic auth to a git remote
When accessing a git remote over http needs a git credential prompt for a
password, cache it for the lifetime of the git-annex process, rather than
repeatedly prompting.
The git-lfs special remote already caches the credential when discovering
the endpoint. And presumably commands like git pull do as well, since they
may download multiple urls from a remote.
The TMVar CredentialCache is read, so two concurrent calls to
getBasicAuthFromCredential will both prompt for a credential.
There would already be two concurrent password prompts in such a case,
and existing uses of `prompt` probably avoid it. Anyway, it's no worse
than before.
jgoerzen [Fri, 9 Sep 2022 17:28:06 +0000 (17:28 +0000)]
yarikoptic [Fri, 9 Sep 2022 16:51:47 +0000 (16:51 +0000)]
Added a comment
Joey Hess [Fri, 9 Sep 2022 16:39:28 +0000 (12:39 -0400)]
comment
Joey Hess [Fri, 9 Sep 2022 16:30:46 +0000 (12:30 -0400)]
comment
yarikoptic [Thu, 8 Sep 2022 15:01:50 +0000 (15:01 +0000)]
reporting flaky tests on ndoli
Added a comment: git-credential-netrc